package com.limh.base.base

import android.content.Context
import android.os.Bundle
import android.support.v4.content.ContextCompat
import android.support.v7.app.AppCompatActivity
import com.github.zackratos.ultimatebar.UltimateBar
import com.limh.base.R
import java.lang.ref.WeakReference

/**
 * @function：activity基类
 * @author： limh
 * @date： 2019/2/28
 * Copyright @2019 Corpration Name
 */
public abstract class BaseActivity : AppCompatActivity() {
    val TAG = javaClass.simpleName
    lateinit var context: Context
    //是否在onResume中加载数据
    var isResume = false
    var isBarDark = true
    var drawableId = R.drawable.base_shape_transparent

    private var isFirst = true
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        context = WeakReference<Context>(this).get()!!
        findView()
        UltimateBar.with(this)
            .statusDark(isBarDark)                  // 状态栏灰色模式(Android 6.0+)，默认 flase
            .statusDrawable(ContextCompat.getDrawable(context, drawableId))           // 状态栏背景，默认 null
            .statusDrawable2(ContextCompat.getDrawable(context, drawableId))         // Android 6.0 以下状态栏灰色模式时状态栏颜色
            .applyNavigation(false)              // 应用到导航栏，默认 flase
            .navigationDark(true)              // 导航栏灰色模式(Android 8.0+)，默认 false
            .create()
            .drawableBar()
        initView()
    }

    override fun onResume() {
        super.onResume()
        if (isFirst || isResume) {
            isFirst = false
            initData()
        }
    }

    /**
     * 状态栏字体风格和背景
     *
     * @param isBarDark  false默认亮色风格
     * @param drawableId 背景drawable
     */
    fun setStatusStyle(isBarDark: Boolean, drawableId: Int) {
        this.isBarDark = isBarDark
        this.drawableId = drawableId
    }

    abstract fun findView()
    abstract fun initView()
    abstract fun initData()
}